//1.配置全局默认路径
axios.defaults.baseURL = "http://www.liulongbin.top:3007"

//从需求角度出发,没有必要所有请求都添加token
// axios.defaults.headers.common['authorization'] = localStorage.getItem('token')

// 2.添加请求拦截器
// 请求拦截器: 在ajax发送请求时拦截,做一些业务逻辑( 判断是否存在token )
// user方法里面可以传递两个函数
axios.interceptors.request.use(function (config) {
    //打印config参数
    //console.log(config);
    //indexOf()  返回某个指定首字符串的位置下标   //有:则返回下标  没有:返回固定值 -1
    //应用:检查一个字符串中是否有某个字符  
    //判断路径中是否包含/api 或者 .my
    if (config.url.indexOf('my/') !== -1) {
        //这样赋值.不会影响原来的头信息设置
        //所有头信息的设置,不需要使用对象赋值 要使用
        config.headers.Authorization = localStorage.getItem('token')
    }

    //修改完毕的config需要返回
    return config
}, function (error) {

    return Promise.reject(error)
})

// 3.响应拦截器:在ajax接收服务器返回的数据时拦截 做一些业务逻辑
axios.interceptors.response.use(function (response) {
    //console.log(response);
    // if (response.data.status === 1 && response.data.message === "身份认证失败！")
    if (response.data.message === "身份认证失败！") {
        //跳转到登录页面,销毁token
        location.href = '/login.html'
        localStorage.removeItem('token')
    }

    return response  //无论有没有对数据操作,都要返回
}, function (error) {

    return Promise.reject(error)
})

// 4.封装一个格式化日期方法
function dateFormat(str) {
    let dt = new Date(str);
    let y = dt.getFullYear();
    let m = padZero(dt.getMonth() + 1);
    let d = padZero(dt.getDate());
    let HH = padZero(dt.getHours());
    let MM = padZero(dt.getMinutes());
    let SS = padZero(dt.getSeconds());
    return `${y}-${m}-${d} ${HH}:${MM}:${SS}`;
}

// 4.补零函数
function padZero(n) {
    return n < 10 ? '0' + n : n;
}
